package com.xbongbong.paas.service;

import com.xbongbong.paas.toolbox.exception.XbbException;
import com.xbongbong.paas.toolbox.wrap.BaseVO;
import com.xbongbong.pro.user.pojo.dto.SyncOrganizationDTO;
import com.xbongbong.sys.domain.entity.CompanyEntity;

/**
 * 对应IsvReceiveController业务
 * @author kaka
 * @version v1.0
 * @date 2019/4/26 12:27
 * @since v1.0
 */
public interface IsvReceiveService {

    /**
     * 手动触发组织架构同步
     * @param syncOrganizationDTO 业务DTO
     * @return 业务VO
     * @throws XbbException 业务异常
     */
    BaseVO syncOrganization(SyncOrganizationDTO syncOrganizationDTO) throws XbbException;

    /**
     * 收到钉钉修改可见范围回调异步逻辑,内部直接调用异步方法
     * @param accessToken 该公司钉钉accessToken
     * @param corpId 公司id
     * @param corpName 公司名
     */
    void changeAuth(String accessToken, String corpId, String corpName);

    /**
     * @param xbbFrom 为空表示从钉钉过来的回调，为xbb则是saas项目过来的调用
     * @param accessToken 该公司钉钉accessToken
     * @param company 公司实体
     */
    void authCompany(String xbbFrom, String accessToken, CompanyEntity company);
}
